' ' Optimize Your AmigaBasic Programs For Speed ' ' By Stephen R. Pietrowicz ' ' Listing one - Plotting example ' DEF FNa(t) = (100/360*t)/3 ' ' Draw each of the plots one at a time ' and report all times when done ' CLS GOSUB SlowPlot FOR i = 1 TO 10000:NEXT i CLS GOSUB QuickPlot FOR i = 1 TO 10000:NEXT i CLS GOSUB QuickerPlot LOCATE 1,1 PRINT "SlowPlot: Begin -- ";a1$;" End -- ";a2$ PRINT "QuickPlot: Begin -- ";b1$;" End -- ";b2$ PRINT "QuickerPlot: Begin -- ";c1$;" End -- ";c2$ END SlowPlot: PRINT "SlowPlot" a1$ = TIME$ FOR j = 20 TO 100 STEP 20 FOR x = -150 TO -1 STEP 0.2 ' ' First draw right side ' y = SIN(FNa(x))/(FNa(x))*j+50 PSET (x+150,y),1 NEXT x FOR x = 1 TO 150 STEP 0.2 ' ' Now draw left side ' y = SIN(FNa(x))/(FNa(x))*j+50 PSET (x+150,y),1 NEXT x NEXT j a2$ = TIME$ RETURN QuickPlot: PRINT "QuickPlot" b1$ = TIME$ FOR j = 20 TO 100 STEP 20 FOR x = 1 TO 150 STEP 0.2 sy = x*0.0925926 y1 = SIN(sy)/sy*j+50 PSET (150-x,y1),1 PSET (x+150,y1),1 NEXT x NEXT j b2$ = TIME$ RETURN QuickerPlot: PRINT "QuickerPlot" c1$ = TIME$ FOR x = 1 TO 150 STEP 0.2 sy = x*0.0925926 SinTemp = SIN(sy)/sy FOR j = 20 TO 100 STEP 20 y1 = SinTemp*j+50 PSET (150-x,y1),1 PSET (x+150,y1),1 NEXT j NEXT x c2$ = TIME$ RETURN